package example.linklist_array.合并有序;


import java.util.Arrays;

// https://leetcode-cn.com/problems/merge-sorted-array/ 合并两个有序数组
public class Demo1 {

    /**
     * 采用双指针的方式， 那个小就移动哪一个
     *
     * @param nums1
     * @param m
     * @param nums2
     * @param n
     */
    //  合并 nums2 到 nums1 中
    public static void merge(int[] nums1, int m, int[] nums2, int n) {
        int[] resultArr = new int[nums1.length + nums2.length];
        int arr1 = 0, arr2 = 0, i = 0;
        while (arr1 < nums1.length && arr2 < nums2.length) {
            if (nums1[arr1] < nums2[arr2]) {
                resultArr[i] = nums1[arr1++];
            } else {
                resultArr[i] = nums2[arr2++];
            }
            i++;
        }
        if (arr1 < nums1.length) {
            System.arraycopy(nums1, arr1, resultArr, i, nums1.length - arr1);
        } else {
            System.arraycopy(nums2, arr2, resultArr, i, nums2.length - arr2);
        }
        System.out.println(Arrays.toString(resultArr));
    }

    public static void main(String[] args) {
        merge(new int[]{1, 1, 2}, 0, new int[]{1, 5, 6}, 5);
    }
}
